#include "window_common.h"
#include "gkt_network.h"
#include <string.h>

#if (defined(GKT_CONFIG_NETWORK_ENABLE) && GKT_CONFIG_NETWORK_ENABLE)

enum {
	WIDGET_ID_LIST = 0,
	WIDGET_ID_MAX
};

static const gkt_widget_list_item_s sc_window_network_setting_widget_list_items[] = {
	GKT_WIDGET_LIST_STATIC_ITEM(WINDOW_VOICE_COMBINED_ID(set_1),
		WINDOW_ID_network_connect),
	GKT_WIDGET_LIST_STATIC_ITEM(WINDOW_VOICE_COMBINED_ID(set_2), 
		WINDOW_ID_firmware_upgrade),
};

#define WINDOW_NETWORK_SETTING_LIST_ITEM_NUMS	\
		sizeof(sc_window_network_setting_widget_list_items) / sizeof(gkt_widget_list_item_s)
	
static const gkt_widget_list_attr_s sc_window_network_setting_list_attr = 
	GKT_WIDGET_LIST_STATIC_ATTR(WINDOW_NETWORK_SETTING_LIST_ITEM_NUMS, 
		sc_window_network_setting_widget_list_items);

GKT_WINDOW_WIDGET_DESCS_DEFINE(network_setting) = {
	[WIDGET_ID_LIST] = GKT_WIDGET_LIST_DESC(0, &sc_window_network_setting_list_attr),
};

static int window_network_setting_event_handler(
				uint32_t major_type, uint32_t minor_type,
				uint32_t id, uint32_t data)
{
	int retval = GKT_EVENT_HANDLE_CONTINUE;

	gkt_window_id_t window_id = 0;

	switch(major_type) {
		case GKT_EVENT_WINDOW:
			if (GKT_WINDOW_ACTIVE == minor_type) {
				window_common_mask_except_number_repeat_return(
					WINDOW_NETWORK_SETTING_LIST_ITEM_NUMS);
			}
			break;
		case GKT_EVENT_WIDGET:
			if (minor_type == GKT_WIDGET_EVENT_CLICK) {
				window_id = (gkt_window_id_t)sc_window_network_setting_widget_list_items[data].data;
				gkt_window_show(window_id, 0);
				retval = GKT_EVENT_HANDLE_COMPLETE;
			}
			break;
		default:
			break;
	}

	return retval;
}

GKT_WINDOW_DESC_DEFINE(network_setting);

#endif
